package com.example.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@Data
public class LargeEntity implements Serializable {
    private static final long serialVersionUID = 1L; // 必须添加
    private String id;          // 36字符 ≈ 72字节
    private String name;        // 50字符 ≈ 100字节
    private String description; // 200字符 ≈ 400字节
    private int value1;         // 4字节
    private double value2;      // 8字节
    // 其他字段...

    public LargeEntity() {
        this.id = UUID.randomUUID().toString();
        this.name = generateString(50);      // 生成长50的随机字符串
        this.description = generateString(200); // 生成长200的随机字符串
    }

    private String generateString(int length) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < length; i++) {
            sb.append((char) ('a' + Math.random() * 26));
        }
        return sb.toString();
    }
    // 生成列表（约71MB）
    public static List<LargeEntity> generate71MBList() {
        List<LargeEntity> list = new ArrayList<>();
        // 估算：单个实体约 584字节，71MB ≈ 71 * 1024 * 1024字节 → 需约 127,000 个实体
        int count = 151000;
        for (int i = 0; i < count; i++) {
            list.add(new LargeEntity());
        }
        return list;
    }
}



